// 给定两个字符串形式的非负整数 num1 和num2 ，计算它们的和并同样以字符串形式返回。
// 你不能使用任何內建的用于处理大整数的库（比如 BigInteger）， 也不能直接将输入的字符串转换为整数形式


function addStrings(num1: string, num2: string): string {
    let len1 = num1.length
    let len2 = num2.length


    if(len1 > len2){
        for(let i = 0;i<len1-len2;i++){
            num2 = "0" + num2
        }
    }

    if(len1 < len2){
        for(let i = 0;i<len2-len1;i++){
            num1 = "0" + num1
           
        }
    }
    let result = ''
    let needtop = 0
    for(let i = num1.length - 1;i>=0;i--){
        const data1 = num1[i]
        const data2 = num2[i]
        let inresult = +data1 + +data2 + needtop
        if(inresult > 9){
            needtop = 1
            result = (inresult - 10) + result
        }else{
            needtop = 0
            result = (inresult) + result
        }
    }
    return needtop == 1 ? 1 + result : result

};


// var addStrings = function(num1, num2) {
//     let i = num1.length - 1, j = num2.length - 1, add = 0;
//     const ans = [];
//     while (i >= 0 || j >= 0 || add != 0) {
//         const x = i >= 0 ? num1.charAt(i) - '0' : 0;
//         const y = j >= 0 ? num2.charAt(j) - '0' : 0;
//         const result = x + y + add;
//         ans.push(result % 10);
//         add = Math.floor(result / 10);
//         i -= 1;
//         j -= 1;
//     }
//     return ans.reverse().join('');
// };

// 作者：力扣官方题解


console.log(addStrings('11','99'))